﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
using Entidades.Seguridad;
using System.Globalization;
using System.Threading;
using Modelo.Seguridad;

namespace VistaOnlineR1._1.Controllers
{
    public class BaseController : Controller
    {
         #region campos
        CatalogoGrupos _catalogoGrupo;
        CatalogoPerfiles _catalogPerfiles;
        #endregion

        #region Constructors
        public BaseController()
            : this(new CatalogoGrupos(), new CatalogoPerfiles())
        {
        }

        public BaseController(CatalogoGrupos catalogoGrupo, CatalogoPerfiles catalogoPerfiles)
        {
            _catalogoGrupo = catalogoGrupo;
            _catalogPerfiles = catalogoPerfiles;
        }
        #endregion

        public List<Perfil> RecuperarPerfil()
        {
            List<Perfil> listPerfil = new List<Perfil>();

            if (User.Identity.Name != "")
            {
                String roles = ((System.Web.Security.FormsIdentity)(User.Identity)).Ticket.UserData;
                
                List<string> idGrupos = roles.Split(';').ToList();

                List<Grupo> grupos = new List<Grupo>();

                foreach (string grupo in idGrupos)
                {
                    Grupo oGrupo = new Grupo();
                    oGrupo = _catalogoGrupo.BuscarGrupo(grupo);
                    grupos.Add(oGrupo);
                }

                string formulario = this.GetType().Name.Replace("Controller", "");

                listPerfil = _catalogPerfiles.RecuperarPerfilesGrupos(grupos, formulario).ToList();

            }

            return listPerfil;
        }        
    }
}
